TALOS TECHNOLOGY SUMMARY

1. Base Types

agent
angled-gears
angled-blower
box
connector
crossing  ;a proper intersection of two projected 2D beam paths; beam-beam interference is planar
edge  ;a finite-height vertical surface separating elevations; blocks walking like a wall but is not vaultable
fan
floor-gears
floor-blower
floor-repeater
gate
gun
hue
jammer
ladder
location
mode
traversal-mode  ;instances walking, stairway, jumping, climbing
pressure-plate
receiver
recorder
screen
switch
toggle-plate
transmitter
tray
wall
wall-gears
wall-blower
wall-repeater
window

2. Composite Types

apparatus (either transmitter receiver floor-repeater wall-repeater gun switch)
beam-blocker (either agent box jammer connector)
los-endpoint (either transmitter receiver floor-repeater wall-repeater gun location)
beam-node (either transmitter receiver floor-repeater wall-repeater location)
cargo (either box jammer connector fan tray)
elevated-object (either location gate screen wall edge transmitter receiver gun switch wall-gears wall-blower floor-repeater wall-repeater)
fixed-beam-source (either transmitter floor-repeater wall-repeater)
fixed-beam-sink (either floor-repeater wall-repeater receiver)
fixed-position-object (either pressure-plate toggle-plate ladder floor-gears wall-gears angled-gears floor-blower wall-blower angled-blower recorder)
gears (either floor-gears wall-gears angled-gears)
blower (either floor-blower wall-blower angled-blower)
heighted-object (either box gate agent screen wall edge jammer connector floor-repeater wall-repeater)
mobile-object (either agent box jammer connector fan tray)
plate (either pressure-plate toggle-plate)
relay (either connector floor-repeater wall-repeater)
repeater (either floor-repeater wall-repeater)
steppable-object (either pressure-plate toggle-plate fan floor-blower angled-blower)
support (either pressure-plate toggle-plate box fan tray floor-blower angled-blower)
support-occupant (either agent box jammer connector fan tray)
target (either gate floor-gears wall-gears floor-blower wall-blower gun)
reach-target (either location switch)
terminus (either transmitter receiver connector floor-repeater wall-repeater)
threat (either gun)
vaultable-object (either gate screen wall)
vertical-object (either location agent box connector jammer tray fan gate screen wall edge floor-repeater wall-repeater transmitter receiver gun switch pressure-plate toggle-plate floor-blower angled-blower)
visibility-object (either gate transmitter receiver floor-repeater wall-repeater gun location)

3. Dynamic Relations

(active receiver)
(blowing (either fan floor-blower wall-blower angled-blower))
(color relay $hue)
(crossing-active crossing)
(depressed plate)
(has-location mobile-object $location)
(holding $agent $cargo :bijective)  ;live cargo must be located, held, or mounted; a held tray retains its holder's location
(jamming jammer $target)  ;an initial active jammer must be located and unheld; physical visibility also requires potential target topology
(latched toggle-plate)
(lethal threat)
(mounted-on fan $gears)
(on $support-occupant $support)  ;occupant-keyed; a support carries one occupant per recorder layer
(open gate)
(paired connector terminus)  ;undirected; stored connector-first
(recorder-cycle-closed)  ;set by a normalized stop-recorder or cancel-playback boundary
(recorder-cycle-stopped-by-ghost)  ;distinguishes normal ghost STOP from live cancellation
(recorder-cycles-used $fixnum)  ;planner-state count incremented by start-recorder
(recording-in-progress)  ;true between start-recorder and either explicit ending
(recording-switched-on switch)  ;recording-side persistent switch state
(switched-on switch)  ;persistent ordinary state; absence means off
(turning (either floor-gears wall-gears angled-gears floor-blower wall-blower angled-blower))

4. Static Relations

(aimed-at (either floor-gears wall-gears angled-gears floor-blower wall-blower angled-blower) $location)
(apparatus-coords> (either transmitter receiver floor-repeater wall-repeater gun switch) $rational $rational $rational)  ;third is the mounting level, optional, default 1; a floor-repeater does not read it
(beam-crossing> crossing $los-endpoint $los-endpoint $los-endpoint $los-endpoint)
(beam-via fixed-beam-source $list fixed-beam-sink)
(boundary-wall $list)  ;axis-aligned point list, explicitly closed by repeating the first point; used by LOS and the walking derivation
(controls $list (either gate floor-gears wall-gears angled-gears floor-blower wall-blower angled-blower gun) $mode)
(coupled fixed-beam-source fixed-beam-sink)  ;directional; fixed couplings unlimited
(crossings-along-beam> los-endpoint $list los-endpoint)
(beam-crossings-before-gate> los-endpoint $list gate los-endpoint)
(current-beam-crossings $list)
(edge-segment> edge $rational $rational $rational $rational $rational)  ;x1 y1 x2 y2 base-z; base-z optional, default 0
(gate-segment> gate $rational $rational $rational $rational $rational)  ;x1 y1 x2 y2 base-z; base-z optional, default 0
(has-chroma (either transmitter receiver) $hue)
(has-elevation elevated-object $rational)
(has-height heighted-object $rational)
(has-position fixed-position-object $location)
(jam-disallowed> location location target)
(location-coords> location $rational $rational $rational)  ;third is the location's own level, optional, default 0
(los-via visibility-object $list visibility-object)  ;symmetric sightline; $list is a flat conjunction of gate and location occluders, all of which must be transparent
(los-barrier-crossings> los-endpoint $list visibility-object)  ;directed records (:kind identity parameter x1 y1 x2 y2), including fixed couplings and gate targets
(reach-via reach-target $list reach-target)  ;authorizes manipulation, including from a location to switch apparatus; not movement
(reach-via> location $list reach-target)  ;directional reach, reacher first; for a one-way opening only, never for a height difference
(recording-copy> $mobile-object $mobile-object :bijective)  ;indexed one-to-one live -> ghost mapping
(screen-segment> screen $rational $rational $rational $rational $rational)  ;x1 y1 x2 y2 base-z; base-z optional, default 0
(stream-width (either wall-gears wall-blower) $rational)  ;default 3 units
(threatens threat location)
(traverse-via traversal-mode location $list location)  ;symmetric traversal edge; $list is DNF: () direct, else OR over clauses, AND within
(traverse-via> traversal-mode location $list location)  ;directed traversal edge, source first, same $list convention
(wall-segment> wall $rational $rational $rational $rational $rational)  ;x1 y1 x2 y2 base-z; base-z optional, default 0
(window-segment> window $rational $rational $rational $rational $rational)  ;x1 y1 x2 y2 base-z; base-z optional, default 0

5. Actions

(connect-connector ">" ?agent "connects" $connector "at" ?location "on" $place "to" $termini)
(jam-target ">" ?agent "jams" ?target "with" $any-jammer "at" ?location "on" $place)
(mount-fan ">" ?agent "mounts" ?fan "on" ?gears "at" $g-location)
(move ">" ?agent "moves via" $route)
(pickup-box ">" ?agent "picks up" ?box "at" $box-location "from" $a-location)
(pickup-connector ">" ?agent "picks up" ?connector "at" $a-location)
(pickup-fan ">" ?agent "picks up" ?fan "at" $fan-location "from" $a-location)
(pickup-jammer ">" ?agent "picks up" ?jammer "at" $a-location)
(pickup-tray ">" ?agent "picks up" ?tray "at" $tray-location "from" $a-location)
(put-box ">" ?agent "puts" ?box "on" $place "at" ?location)
(put-connector ">" ?agent "puts" ?connector "at" ?location "on" $place "without pairings")
(put-fan ">" ?agent "puts" ?fan "on" $place "at" ?location)
(put-jammer ">" ?agent "puts" ?jammer "on" $place "at" ?location "without jamming")
(put-tray ">" ?agent "puts" ?tray "on" $place "at" ?location)
(start-recorder ">" ?agent "starts the recorder")
(stop-recorder ">" ?agent "stops the recorder")
(toggle-switch ">" ?agent "toggles" ?switch)
(cancel-playback ">" ?agent "cancels recorder playback")

6. Vertical Type Constants (*vertical-type-constants*, tech/-vertical.lisp)

An object's height is its extent along its own axis; its base is the absolute level of its
lowest point; its top is base plus height on a :vertical axis and base alone otherwise.
Base is structural, not declared: an object resting on something takes that support's top,
following on, holding, has-location, has-position, and bottoming out at a location's own
level.  Only an object resting on nothing uses the base default below.

  TYPE              HEIGHT  AXIS         BASE
  location          0       :none        0     ;a location is a point; its level is its own
  agent             3/2     :vertical    0
  box               1       :vertical    0
  connector         1       :vertical    0
  jammer            1       :vertical    0
  tray              0       :vertical    0     ;zero-thickness: top flush with base
  fan               0       :vertical    0
  pressure-plate    0       :vertical    0     ;flush with the floor it is positioned on
  toggle-plate      0       :vertical    0
  floor-blower      0       :vertical    0
  angled-blower     0       :vertical    0
  gate              4       :vertical    0
  screen            4       :vertical    0
  wall              4       :vertical    0
  edge              3/2     :vertical    0
  floor-repeater    1       :vertical    0     ;stands on the floor
  wall-repeater     1       :horizontal  1     ;projection from its wall; descriptive only
  transmitter       0       :none        1
  receiver          0       :none        1
  switch            0       :none        1
  gun               0       :none        1

A problem overrides any height with has-height, and any base with the level coordinate of
location-coords>, apparatus-coords>, or a named segment relation, or with has-elevation in
a coordinate-free model; the coordinate substrates refuse an object that names its level
both ways with different numbers.  A height on a
non-vertical axis is descriptive only -- top ignores it, and no other object-height
consumer's argument type admits such an object -- so a wall-repeater's height records how
far the rod projects from its wall and enters no computation.

Outside the table:

boundary-wall *boundary-wall-height*, default 6  ;the polygon has no named object for has-height; see section 7
wall-gears 1, wall-blower 1  ;their has-elevation is the emitted STREAM elevation, read by
                             ;-gears-fan's blower-elevation, not the base of a solid; both
                             ;are deliberately absent from the table above

7. Technology Parameters

Technology-owned default (DEFPARAMETER after INCLUDE-TECH to override):
*beam-occlusion-tolerance* 1/2  ;tech/-beam-los-coordinates.lisp; max perpendicular distance a location may sit off a beam's line and still count as a candidate occluder
*boundary-wall-height* 6  ;tech/-segment-geometry.lisp; boundary polygon LOS height
*vertical-reach-limit* 1  ;tech/-support-elevation.lisp; max elevation gap for manipulation, landing, and barrier clearance

Managed problem parameters (WW-SET, restored on staging):
*max-recorder-cycles* 1  ;maximum START-RECORDER actions in one planner path, or NIL for no limit; a cycle counts when it starts
*max-connector-pairings* 3  ;tech/beam-relay.lisp; max PAIRED termini a connector may hold at once; connector pairings only -- fixed COUPLED corridors are unlimited; a problem may set a smaller value first
